package com.lebron.kotlin.ui.activity

/**
 * @author Lebron
 * activity 基类
 */
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import com.gyf.barlibrary.ImmersionBar
import com.lebron.kotlin.ui.present.BasePresentI
import com.lebron.kotlin.utils.AppManager

abstract class BaseActivity: AppCompatActivity() {


    val TAG: String = javaClass.simpleName
    //状态栏信息
    open var immersionBar: ImmersionBar? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(getLayoutId())

        AppManager.addActivity(this)

        if (isImmersionBar()) {
            initImersionBar()
        }

        initView()

        initData()
    }

    /**
     * 初始化数据
     */
    abstract fun initData()

    /**
     * 获取资源id
     */
    abstract fun getLayoutId(): Int

    /**
     * 初始化组件
     */
    abstract fun initView()

    override fun onDestroy() {
        super.onDestroy()

        immersionBar?.destroy()
        AppManager.removeActivity(this)
    }

    open fun isImmersionBar(): Boolean = true//是否使用沉浸式状态栏

    private fun initImersionBar() {
        immersionBar = ImmersionBar.with(this)
        immersionBar?.init()
    }
}